3D graphics requires a large amount of vertex data for objects to be processed from original, or object location, through camera positioning, perspective, and final transformation into 2D space for presentation to the viewer. Since the data is in 3 dimensional space, the standard Cartesian coordinate system (three perpendicular axis −X, Y, Z), as well as the spherical coordinate system (ρ, θ, φ) may be used for representation.
A point whose rectangular coordinates are given by (X, Y, Z) will have homogenous coordinates (X, Y, Z, 1) which can be represented by 4×4 matrices. This format allows for ease of representing the transformations required for scaling, rotating, and translating the coordinates from object space to final pixel (2D) space.
When rendering an object or scene from 3D onto a 2D viewport the object coordinates must be transformed according to the camera's position and orientation and then projected onto a 2D plane. Transforming each coordinate requires a large amount of processing power.
The processing requirements necessary to transform 3D points make 3D graphics difficult or expensive to provide on a mobile device, or other device having a limited processor capability. Therefore there is a need for an improved method and apparatus for processing 3D vertex data on computationally limited processors.